package com.honglv.service;

import com.honglv.pojo.dto.PageByCityDTO;
import com.honglv.pojo.dto.UploadStrategyDTO;
import com.honglv.pojo.vo.GetStrategiesByCityVO;
import com.honglv.pojo.dto.PageDTO;
import com.honglv.pojo.dto.UpdateStrategyDTO;
import com.honglv.pojo.result.Result;
import com.honglv.pojo.vo.GetAllStrategiesVO;
import com.honglv.pojo.vo.GetStrategyVO;
import com.honglv.pojo.vo.PageVO;

import java.util.List;

public interface StrategyService {
    /**
     * 用户上传攻略
     * @param uploadStrategyDTO
     * @return
     */
    void upload(UploadStrategyDTO uploadStrategyDTO);
    /**
     * 根据城市分页获取攻略
     * @param pageByCityDTO
     * @return
     */
    PageVO<GetStrategiesByCityVO> getStrategiesByCity(PageByCityDTO pageByCityDTO);
    PageVO<GetAllStrategiesVO> getAllStrategies(PageDTO pageDTO);

    GetStrategyVO getStrategy(Long id);

    List<GetAllStrategiesVO> getTopStrategy();

    java.util.List<GetAllStrategiesVO> getStrategiesByAuthorId(Long userId);

    Result deleteStrategy(Long id);

    Result updateStrategy(UpdateStrategyDTO updateStrategyDTO);
}
